#include "mvdmainwindow.h"
#include "ui_mvdmainwindow.h"

MVDMainWindow::MVDMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MVDMainWindow)
{
    ui->setupUi(this);
    //testMVDview();
    initSqlTableMode();
}

MVDMainWindow::~MVDMainWindow()
{
    delete ui;
}

void MVDMainWindow::initSqlTableMode()
{
    //实例化模型
    t_model = new QSqlTableModel;
    //model 关联 data表
    t_model->setTable("info");
    //model 关联  view视图
    ui->tableView->setModel(t_model);
    //查询结果集
    t_model->select();
    //将数据提交方式修改为手动提交
    t_model->setEditStrategy(QSqlTableModel::OnManualSubmit);

    //CustomDelegate *delegate = new CustomDelegate(this);
    BirthDelegate *delegate = new BirthDelegate(this);
    ui->tableView->setItemDelegateForColumn(1,delegate);
}

void MVDMainWindow::testMVDview()
{
  //  QStringListModel *s_model = new QStringListModel;

}

void MVDMainWindow::on_commitAction_triggered()
{
    //将模型的改变更新到数据库中
    t_model->submitAll();
}

void MVDMainWindow::on_revertAction_triggered()
{
    //撤销所有的模型修改
    t_model->revertAll();
}

//添加一个空行
void MVDMainWindow::on_addAction_triggered()
{
    //增加一空的空行
    //t_model->insertRow(0);
    QSqlRecord myRecord = t_model->record();
    //获取行号
    int row = t_model->rowCount();
    t_model->insertRecord(row,myRecord);
}

void MVDMainWindow::on_removeAction_triggered()
{
    //删除数据,根据模型索引定位行
    int row = ui->tableView->currentIndex().row();
    t_model->removeRow(row);
    t_model->submitAll();
}

void MVDMainWindow::on_selectAction_triggered()
{
    //设置查询条件
    t_model->setFilter("age > 22");
    t_model->select();
}

void MVDMainWindow::on_refreshAction_triggered()
{
    t_model->setFilter("");
    t_model->select();
}
